## Problem
PostHog Code will surface a "Dismiss" dialog on the inbox where a reviewer can mark a report as not worth acting on, as of PostHog/code#2053. We need to record "why" alongside the status change so we can:
- distinguish "already fixed" from "wontfix"
- stack multiple dismissals over time when a report is unsnoozed and later re-dismissed for a different reason
The existing `state` action only flips a status flag and offers no place to attach this metadata.
## Changes
Adding a new `dismissal` value on `SignalReportArtefact.ArtefactType`.
`POST /api/projects/:team_id/signals/reports/:id/state/` now accepts two optional body fields:
- `dismissal_reason`- Arbitrary string code. The set of valid codes is owned by PostHog Code, so we can iterate there without a backend change.
- `dismissal_note` - Free-form text, capped at 4000 characters.
When either is provided and the target state is `suppressed` **or** `potential`, the action creates a `dismissal` artefact alongside the status change capturing reason, note, and the dismissing user's ID.
Important note: Reingestion is now available to all users. We need it e.g. to let people re-run failed research, which we've gotten reports about in Discord.
### Why an artefact rather than a column on the report
The existing `SUPPRESSED` status is a single flag. We need history (the same report can be dismissed multiple times for different reasons over its lifetime), and a typed artefact matches the existing pattern for everything else attached to a report.
## How did you test this code?
`TestSignalReportSuppressionAPI`
## Publish to changelog?
no
Problem
"Snooze", "Suppress" and "Delete" don't provide us with info on why the user got rid of the report – and it's hard to understand how to use them.
Changes
Replacing those three buttons with one clear "Dismiss", and a hidden dropdown for "Delete" - as well as "Reingest".
Basically replaces the old suppress-confirmation dialog and adds a "Dismiss" button (with thumbs-down icon) to both the inbox toolbar and the report detail pane header. Notes:
- Multi-select (2+) keeps the previous bulk Snooze / Suppress buttons without the dialog. For mass management.
⋯overflow menu, keeping the primary toolbar clean.Implementation PR link now shown in the report detail header next to "Dismiss" (so they function as "here's the PR to review, accept or dismiss").
Backend prerequisite PR: PostHog/posthog#57768
Created with PostHog Code